#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <string.h>

#define MAXLINE 1024

int main() {
    // 创建socket对象
    int sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0) {
        perror("socket creation failed");
        return 1;
    }

    // 创建网络通信对象
    struct sockaddr_in addr;
    addr.sin_family = AF_INET;
    addr.sin_port = htons(1324);
    addr.sin_addr.s_addr = inet_addr("127.0.0.1");

    // 连接服务器
    if (connect(sockfd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
        perror("ERROR connecting");
        exit(1);
    }

    while (1) {
        char message[MAXLINE] = "Hello from client"; // 要发送的消息
        if (send(sockfd, message, strlen(message), 0) < 0) {
            perror("发送失败");
            break;
        }
        printf("已发送消息到服务器\n");

        // 接收服务器端的回复
        char recv_buffer[MAXLINE];
        ssize_t n = recv(sockfd, recv_buffer, MAXLINE, 0);
        if (n < 0) {
            perror("接收失败");
            break;
        }
        recv_buffer[n] = '\0';
        printf("服务器返回的消息：%s\n", recv_buffer);

        // 等待一段时间后再次发送消息
        sleep(1);
    }

    close(sockfd);

    return 0;
}
